#include "TcpServer.hpp"
#include "ServerCal.hpp"

int main()
{
    ServerCal cal;
    TcpServer *tsvp = new TcpServer(8080, std::bind(&ServerCal::Calculator, &cal, std::placeholders::_1));
    tsvp->InitServer();
    tsvp->Start();

    // Response resp(1000, 0);
    // std::string content;
    // resp.Serialize(&content);
    // std::cout << content << std::endl;
    // std::string package = Encode(content);
    // std::cout << package;

    // content = "";
    // bool r = Decode(package, &content);
    // std::cout << content << std::endl;

    // Response temp;
    // temp.Deserialize(content);

    // std::cout << temp.result << std::endl;
    // std::cout << temp.code << std::endl;

    // Request req(12364566, 43454356, '+');
    // std::string s;
    // req.Serialize(&s);
    // s = Encode(s);
    // std::cout << s;

    // std::string content;
    // bool r = Decode(s, &content);
    // std::cout << content << std::endl;
    // Request temp;
    // temp.Deserialize(content);

    // std::cout << temp.x << std::endl;
    // std::cout << temp.op << std::endl;
    // std::cout << temp.y << std::endl;
    return 0;
}

// void Usage(std::string name)
// {
//     std::cout << "\nUsage :" << name << " Port\n"
//               << std::endl;
// }

// void HandlerHttpRequest(int sockfd)
// {
//     // 1. 读取请求 for test
//     char buffer[10240];
//     ssize_t s = recv(sockfd, buffer, sizeof(buffer) - 1, 0);
//     if (s > 0)
//     {
//         buffer[s] = 0;
//         std::cout << buffer << "--------------------\n"
//                   << std::endl;
//     }
// }

// int main(int argc, char *argv[])
// {
//     if (argc != 2)
//     {
//         Usage(argv[0]);
//         exit(0);
//     }

//     std::unique_ptr<TcpServer> TcpServer(new TcpServer(atoi(argv[1]), HandlerHttpRequest));
//     TcpServer->Start();
//     return 0;
// }
